/**
 * @properties={typeid:35,uuid:"91B641A5-E0D1-49FF-947E-F4F2F1B1FD10",variableType:4}
 */
var es_preview = null;

/**
 * @properties={typeid:35,uuid:"E377DB4A-6684-4388-84FD-95373B46A5F7",variableType:4}
 */
var found = 0;

/**
 * @properties={typeid:35,uuid:"B2C61B5B-31EB-42A5-8285-92A46CD90444",variableType:6}
 */
var vporc_iva = 0;

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"C5DEE822-E2D7-4AC4-91A2-D575C7BBB831"}
 */
function confirmar(event) {
	totalizar()
 
 if (globals.gtotal_comprob <= 0)
 {
	 	globals.gMensaje="El importe a liquidar es erróneo = " + globals.gtotal_comprob
		globals.gMensajes()
 }
 else
 {
	// si es letra A pero liquida viajes de exportación el IVA se pone en 0
	if (letra=="A" && globals.gopcion_viajes_exportacion==1)
	{
		vporc_iva=0
	}
	viajes_exportacion=globals.gopcion_viajes_exportacion
	 //// buscar numeracion de liquidación   codigo=11
	var fs_nro_rec = databaseManager.getFoundSet(controller.getServerName(),'numeracion_cl')
	fs_nro_rec.loadAllRecords()
	fs_nro_rec.find()
	fs_nro_rec.sucursal=sucursal
	fs_nro_rec.letra=letra
	fs_nro_rec.cod_comprobante=11   //fac_cabecera_to_tipo_doc.cod_doc_asociado en fac1
	var found=fs_nro_rec.search()
	if (found != 1)
     {	
	   globals.gMensaje = 'Sucursal o Letra o Tipo de comprobante incorrectos al buscar numeracion'
	   globals.gMensajes();
     }
     else
     {	
	  fs_nro_rec.setSelectedIndex(1)
	// 12/10/2010 ==================================================
	  	var nro_aux= fs_nro_rec.ultimo_numero + 1  
	  	tipo_doc=6
		globals.duplicacion_liq_cabecera(letra,sucursal,nro_aux);
		if (globals.gfilas!=0)  // si es cero, la factura no existe
		{ // ya existe , lo rechaza
			globals.gMensaje = 'Ya existe Liquidacion de Estadia ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_aux,'00000000');
			globals.gMensajes();
			return false;
		}
	// 12/10/2010 ==================================================	  
	  fs_nro_rec.ultimo_numero = fs_nro_rec.ultimo_numero + 1
      
	 ////guardar mas datos de liq_cabecera  // es la tabla del form
     	 nro_liquidacion=fs_nro_rec.ultimo_numero
     // sucursal =  es lookup value de rec_cabecera
     // fecha       se llena en iniciar
     // cliente_id  se llena con la valuelist
      	subtotal1=globals.gtotal_comprob
      	subtotal0=subtotal1;  // 16/04/2012
      	bonificacion=0        // 20/04/2012
      // ver de donde se iniicializan las sgte 3 variables ???
		var aux_porc_iva = vporc_iva
		//var aux_porc_comision = 8
		//var aux_importe_gastos = 15
      	// no tiene comisión ni gastos
		comision=0;
		gastos=0
		neto= subtotal1 
		// operacion  25/10
		//iva1_imp= neto * aux_porc_iva / 100 ;
		var aux_red = globals.operacion(neto,"*",aux_porc_iva)
		iva1_imp= globals.operacion(aux_red,"/",100)
		iva1_porc=aux_porc_iva
		tipo_doc=6
		// operacion  25/10
		total=neto + iva1_imp;
		total= globals.operacion(neto,"+",iva1_imp)
	// regrabar los viajes liquidados con estado = 3 
		for (var i = 1 ; i <= forms.liq_estadia_viajes_a_liq.controller.getMaxRecordIndex(); i++)
	 {		 
	  forms.liq_estadia_viajes_a_liq.controller.setSelectedIndex(i)
	  if (forms.liq_estadia_viajes_a_liq.marca_liq==1)
	  {
	//regrabar lo que está marcado 
	  	forms.liq_estadia_viajes_a_liq.marca_liq = 0
	  }
	 }
     //// grabar el pago en ctacte prov // desde la relacion liq_cabecera-proveedor + proveedor-ctactepr 
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.newRecord()
		
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.cod_mov=6
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.cond_pago_id=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_mov=fecha
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_vto=fecha
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.itc=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.neto=neto
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva_porc=  aux_porc_iva
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva=iva1_imp
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva_percep=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.importe=total
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.letra=letra
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.nro_factura=nro_liquidacion
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.provincia_id
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.retecion_ing_brutos=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.retencion_ganancias=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.saldo=total
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.sucursal=sucursal
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.tasa_iva_id=1  // ???
	//// salvar todo
	var estado=databaseManager.saveData()
	if (estado==true)
	{
	databaseManager.refreshRecordFromDatabase(foundset, 0) // deja el indice correctamente
	databaseManager.refreshRecordFromDatabase(foundset.liq_cabecera_to_liq_detalle,-1)
	databaseManager.refreshRecordFromDatabase(foundset.liq_cabecera_to_ctacte_pr,0)
	//globals.gMensaje ='Liquidación de Estadías ' + '\nSucursal ' + sucursal + '\n' + 'Letra ' + letra    + '\nNumero ' + nro_comprobante +  '\nGenerado correctamente' + '\nImprime:'
	globals.gMensaje ='Liquidación de Estadías ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_liquidacion,'00000000') +  ' Generada correctamente' + ' Imprime:'
	//plugins.dialogs.showInfoDialog('Generador de Facturas y Notas',  globals.gMensaje,  "OK")
	//var resp = plugins.dialogs.showQuestionDialog( 'Impresion',  '¿Desea imprimir?' ,  'Si', 'No')
	var resp=globals.DIALOGS.showQuestionDialog('Liquidación de Estadías',  globals.gMensaje,  "Si", "No" )
	if (resp == 'Si')
	{
		es_preview = 1 //26/07/2010
		forms.liq_cabecera_imp.controller.showPrintPreview(true)
	}
	else  //26/07/2010
	{ //26/07/2010
	iniciar()
	} //26/07/2010
	}
	else
	{
	globals.gMensaje ='Liquidación No fue generada '
	globals.DIALOGS.showInfoDialog('Liquidación de Estadías',  globals.gMensaje,  "OK")
	cancelar()
	}
	}
 }
 //var f= 1  // parar debug
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"AB2EAF8C-5A5F-4165-99EC-F61DEC828747"}
 */
function cancelar(event) {
	databaseManager.rollbackEditedRecords()
	databaseManager.setAutoSave(true)
	iniciar();
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"297478E5-9290-429C-8B7C-2AACFD9258A0"}
 */
function elige_viajes(event) {
	// llamar al otro form para seleccionar los viajes a liquidar
	application.showFormInDialog(forms.liq_estadia_viajes_a_liq,300,400,950,400,'Viajes a liquidar',true,false,'viajes_a_liq',true);
	// vuelve del anterior form con las columnas de liq_detalle dadas de alta
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"C9B88033-F3EA-4990-8B04-8C964356BCDD"}
 */
function borra_detalle(event) {
	// TODO Auto-generated method stub
}

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"DC84A7A8-B6BE-4C74-AC1D-64D76A999841"}
 */
function iniciar(firstShow, event) {
	globals.autosaveoff();
	controller.newRecord(false);
	fecha = new Date();  
	globals.gtotal_comprob=0.00;
	globals.gopcion_viajes_exportacion=0
	es_preview = 0; //26/07/2010
	}

/**
 *
 * @properties={typeid:24,uuid:"5048DE88-4CB7-41AA-AAED-EFC83B3FCFEB"}
 */
function totalizar() {
	globals.gtotal_comprob=0.00
	for ( var i = 1 ; i <= liq_cabecera_to_liq_detalle.getSize(); i++ )
	{
		liq_cabecera_to_liq_detalle.setSelectedIndex(i)
		//globals.gtotal_comprob+= liq_cabecera_to_liq_detalle.importe
		globals.gtotal_comprob = globals.operacion(globals.gtotal_comprob,"+",liq_cabecera_to_liq_detalle.importe)
	} 
}

/**
 * Handle hide window.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"ED5568F5-27B5-494D-B021-58ACA69D3F4E"}
 */
function salir_liq(event) {
	if (es_preview== 0) //26/07/2010
	{ //26/07/2010
	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea salir?' ,  'Si', 'No')
	if (resp == 'Si')
	{
		databaseManager.rollbackEditedRecords()
		databaseManager.setAutoSave(true)
		return true   //11/01/2012 - corrección onHide con respuesta "No" - evita cabeceras vacías
		//databaseManager.setAutoSave(true)  //26/07/2010
	}
	else
	{
		return false //11/01/2012 - corrección onHide con respuesta "No" - evita cabeceras vacías
	}
	} //26/07/2010
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"D7940B48-F8E5-405C-A148-91ED78BBB5F9"}
 */
function elige_fletero(oldValue, newValue, event) {
	globals.gtotal_comprob=0.00
	// salvar_fletero: porque perdia en codigo de fletero en el newRecord
	var salvar_fletero=proveedor_id
	// rollback: porque al cambiar de cliente dejaba los movs. del anterior
	databaseManager.rollbackEditedRecords()
	// newRecord: porque al traia datos del untilmo recibo de ese cliente en vez de crear uno
	controller.newRecord(false);
	proveedor_id=salvar_fletero
	globals.marca_primer_find = 0
	// letra y sucursal podrían tener que ser calculados dependiendo del tipo_iva del proveedor ???
	switch( liq_cabecera_to_proveedor.tipo_iva_id )
{
case 1: 
		letra="A"
		vporc_iva=globals.gporc_iva_fletes
		break;
case 6: 
		letra="B"
		vporc_iva=0
		break;
case 8: 
		letra="A"
		vporc_iva=globals.gporc_iva_fletes
		break;
default:
		letra="X"
		vporc_iva=0
}
	sucursal=globals.gSucursal
	fecha=new Date;
	return true
}
